If you have never contributed to an open source project before and you’re just getting started, consider exploring these resources.
First contributions is a hands-on tutorial that walks you through contributions workflow on GitHub. When you complete the tutorial, you have made a contribution to the same project.
Open source is powerful because it lowers the barriers to adoption and collaboration, allowing people to spread and improve projects quickly. Also because it gives users a potential to control their own computing, relative to closed source.
Free software refers to the same set of projects as open source.
There are many reasons why a person or organization would want to open source a project. Some examples include:
Collaboration: Open source projects can accept changes from anybody in the world. Exercism, for example, is a programming exercise platform with over 350 contributors.
Adoption and remixing: Open source projects can be used by anyone for nearly any purpose. People can even use it to build other things. WordPress, for example, started as a fork of an existing project called b2.
Transparency: Anyone can inspect an open source project for errors or inconsistencies. Transparency matters to governments like Bulgaria or the United States, regulated industries like banking or healthcare, and security software like Let’s Encrypt.
An open source license guarantees that others can use, copy, modify, and contribute back to your project without repercussions. It also protects you from sticky legal situations. You must include a license when you launch an open source project.
Legal work is no fun. The good news is that you can copy and paste an existing license into your repository. It will only take a minute to protect your hard work.
READMEs do more than explain how to use your project. They also explain why your project matters, and what your users can do with it.
In your README, try to answer the following questions:
You can use your README to answer other questions, like how you handle contributions, what the goals of the project are, and information about licenses and attribution.
A CONTRIBUTING file tells your audience how to participate in your project. For example, you might include information on:
How to set up your environment and run tests In addition to technical details, a CONTRIBUTING file is an opportunity to communicate your expectations for contributions, such as:
It can be hard to imagine that many of the applications and programs we use today are built by hundreds of thousands, even millions, of people all over the world. Open-source software (OSS) is a rapidly growing industry that provides many benefits to the individuals and businesses who use it, as well as to its programmers.
While each person may have different individual motivations, here is a list of some of the most common reasons why developers contribute to open-source software:
For developers, contributing to OSS means that they not only practice their programming skills, but that they also learn and gain feedback from more accomplished programmers.
Gaining real experience before applying for an internship can not only help secure a position at a well-sought-after tech company, but can also help move you into full-time work and accelerate your career.
Most people who are passionate about something strive to be recognized for the quality work they produce, and for some, developing software is a huge passion. Recognition from members from the OSS community not only encourages and motivates a developer to improve his or her skills, it can also create a number of opportunities, such as job offers and invitations to attend conferences and events, etc.
The fact that OSS is visible to the public means that prospective employers can inspect your code and assess your skills as a developer based on the code you have written. In contrast, commercial (proprietary) software doesn’t provide you with the same proof of your abilities, and overall it is much harder to gain experience in this realm.
This desire to contribute can also resonate on a business level. If a business owner or company is using a piece of open-source software and would like to make some changes or add new features to meet a certain business need, then this is also a real possibility. The result is a win-win situation, as the business gets a new feature (either by developing it themselves or suggesting it to the core team) and the software also receives a new feature that can often be utilized by other users.